using System.Collections.Generic;
using UnityEngine;

namespace Gameplay.PVE
{
    public class PveGlobalVlues
  {
    /// <summary>
    /// 0 不动，但攻击距离无限   1 按照分路和攻击距离移动并攻击 2 近战移动，远程无限
    /// </summary>
    public static int selfMoveType = 0;
    
    /// <summary>
    /// 我方是否自动后退
    /// </summary>
    public static bool selfAutoBack;

    /// <summary>
    /// 敌方一个一个出怪，用于验证技能
    /// </summary>
    public static bool IsSingleEnemy = false;

    /// <summary>
    /// 帧率
    /// </summary>
    public static int fps = 60;

    /// <summary>
    /// 游戏基础速度倍率
    /// </summary>
    public static float timeScaleFactor = 1f;

    /// <summary>
    /// 显示log
    /// </summary>
    public static bool ShowBattleUnitLog = true;

    /// <summary>
    /// 屏蔽寻路
    /// </summary>
    public static bool DisableAStar = false;


    /// <summary>
    /// 写死的关卡id
    /// </summary>
    public static int LevelId = 0;

    /// <summary>
    /// 血条高度
    /// </summary>
    public static float HudHeight = 2.2f;

    public static float HudScaleX = 0.7f;

    public static float HudScaleY = 0.8f;
    
    /// <summary>
    /// 飘钱的数字随机值
    /// </summary>
    public static List<int> moneyCount = new List<int> {5, 20, 50, 100};

    /// <summary>
    /// 飘钱的数字随机区间
    /// </summary>
    public static Vector2 moneyCountRegion = new Vector2(2,10);

    /// <summary>
    /// 显示飙血的概率 0~1
    /// </summary>
    public static float hitEffectRate = 1f;

    public static List<float> deadEffect = new List<float>
    {
        0.7f,//抛飞
        0.1f,//正常死亡
        0.2f,//直接消失，暴血
    };

    public static bool ShowWaveHitArea = false;

    /// <summary>
    /// 两次震动的最小间隔
    /// </summary>
    public static float shakeInterval = 0.02f;
    
    /// <summary>
    /// 振幅
    /// </summary>
    public static float shakeRange = 2;
    
    /// <summary>
    /// 一次震动的完整时间
    /// </summary>
    public static float shakeTime = 0.1f;

    /// <summary>
    /// 玩家角色普攻自带硬直
    /// </summary>
    public static bool PlayerNormalAttackCauseHit = false;

    /// <summary>
    /// 玩家角色技能自带硬直
    /// </summary>
    public static bool PlayerSkillCauseHit = false;

    /// <summary>
    /// 玩家暴击自带硬直
    /// </summary>
    public static bool PlayerCriticalCauseHit = true;
    
    /// <summary>
    /// 玩家暴击震屏
    /// </summary>
    public static bool PlayerCriticalShake = false;
    
    public static int hitElementId = 100101;

    /// <summary>
    /// 暴击硬直倍率
    /// </summary>
    public static float criticalRigidBreakRatio = 5;

    /// <summary>
    /// 暴击伤害倍率
    /// </summary>
    public static float criticalDamageRatio = 2;

    /// <summary>
    /// 刷新特定敌方英雄
    /// </summary>
    public static int specificEnemy = 0;
    

    public static bool enemyUseAttackPoint = true;


    public static bool ignoreRigidBreak = false;

    /// <summary>
    /// 显示寻路
    /// </summary>
    public static bool ShowAstarPath = false;

    public static bool IsTestBattle = false;

    public static bool RpgFightUseTextureBg = false;

    public static bool IsDeckBeforeRpg = true;

    public static int TrackBulletType = 0;//0 每一发追不同的点位  1 每一轮追同一个点位  2 无论如何都追同一个点位

    public static int HitAndRun;

    public static float InitTeamEnergy = 3;
    public static float TeamEnergyRecoverSpeed = 1/3f;
    public static float EnemyEnergyRecoverSpeed = 1 / 3f;

    public static float MpAutoRecoverSpeed = 0;

    public static bool ModelShadowEditor = false;

    public static bool BulletSound = true;

    //僵尸关寻路测试
    public static bool ZombieFindPathTest = false;

    public static float SelfRigidRatio = 1;
    public static float EnemyRigidRatio = 0.7f;

    public static float SelfMeleeLine = 37f;

    public static float SelfMeleeLine2 = 35f;

    public static bool IsAuto = true;

    public static bool SelfRunIntoBattle = false;
    public static bool EnemyRunIntoBattle = false;

    public static bool ResetEffectRenderQueue = true;
    
    public static int rpgLevelTime = 180;

    public static bool UseHeroMp = true;
    //怒气相关
    public static int AttackMpBase = 200;
    public static int HitMpBase = 50;
    public static int KillMpBase = 100;
    public static int KillEliteBase = 200;
    public static int KillBossBase = 500;
    public static int MpMax = 1000;
    public static int MpInit = 0;

    public static int JobAttackMpBonus = 200;
    public static int JobHitMpBonus = 150;
    public static int JobMpInit = 600;
    public static int JobAllyMpBonus = 50;
    public static int JobMpCost = 700;

    public static float BossScale = 1.1f;
    
    public static string defaultSkillCameraName = "ani_SkillCommon";
    public static bool EnableSkillCamera = true;

    public static int RpgSceneId = 1;
    
    //资源加载相关
    public static bool PreloadRpgScene = false;//预加载场景，不卸载
    public static bool PreloadRpgBattleHeros = false;

    public static int AirDroneModelId = 410001;
    public static int HelicopterModelId = 44000;

    public static bool TestShowArea = false;
  }
}
